home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / cupmtr.z / cupmtr
Text File  |  1996-03-14  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))                                                          CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CUPMTR - overwrite the general complex M-by-N matrix C with   SIDE = 'L'
  10.      SIDE = 'R' TRANS = 'N'
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE CUPMTR( SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO )
  14.  
  15.          CHARACTER      SIDE, TRANS, UPLO
  16.  
  17.          INTEGER        INFO, LDC, M, N
  18.  
  19.          COMPLEX        AP( * ), C( LDC, * ), TAU( * ), WORK( * )
  20.  
  21. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  22.      CUPMTR overwrites the general complex M-by-N matrix C with TRANS = 'C':
  23.      Q**H * C       C * Q**H
  24.  
  25.      where Q is a complex unitary matrix of order nq, with nq = m if SIDE =
  26.      'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1
  27.      elementary reflectors, as returned by CHPTRD using packed storage:
  28.  
  29.      if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
  30.  
  31.      if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
  32.  
  33.  
  34. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  35.      SIDE    (input) CHARACTER*1
  36.              = 'L': apply Q or Q**H from the Left;
  37.              = 'R': apply Q or Q**H from the Right.
  38.  
  39.      UPLO    (input) CHARACTER*1
  40.              = 'U': Upper triangular packed storage used in previous call to
  41.              CHPTRD; = 'L': Lower triangular packed storage used in previous
  42.              call to CHPTRD.
  43.  
  44.      TRANS   (input) CHARACTER*1
  45.              = 'N':  No transpose, apply Q;
  46.              = 'C':  Conjugate transpose, apply Q**H.
  47.  
  48.      M       (input) INTEGER
  49.              The number of rows of the matrix C. M >= 0.
  50.  
  51.      N       (input) INTEGER
  52.              The number of columns of the matrix C. N >= 0.
  53.  
  54.      AP      (input) COMPLEX array, dimension
  55.              (M*(M+1)/2) if SIDE = 'L' (N*(N+1)/2) if SIDE = 'R' The vectors
  56.              which define the elementary reflectors, as returned by CHPTRD.
  57.              AP is modified by the routine but restored on exit.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))                                                          CCCCUUUUPPPPMMMMTTTTRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      TAU     (input) COMPLEX array, dimension (M-1) if SIDE = 'L'
  75.              or (N-1) if SIDE = 'R' TAU(i) must contain the scalar factor of
  76.              the elementary reflector H(i), as returned by CHPTRD.
  77.  
  78.      C       (input/output) COMPLEX array, dimension (LDC,N)
  79.              On entry, the M-by-N matrix C.  On exit, C is overwritten by Q*C
  80.              or Q**H*C or C*Q**H or C*Q.
  81.  
  82.      LDC     (input) INTEGER
  83.              The leading dimension of the array C. LDC >= max(1,M).
  84.  
  85.      WORK    (workspace) COMPLEX array, dimension
  86.              (N) if SIDE = 'L' (M) if SIDE = 'R'
  87.  
  88.      INFO    (output) INTEGER
  89.              = 0:  successful exit
  90.              < 0:  if INFO = -i, the i-th argument had an illegal value
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.